home *** CD-ROM | disk | FTP | other *** search
- Path: news.magmacom.com!NewsWatcher!user
- From: Jan@Bytesmiths.com (Jan Steinman)
- Newsgroups: comp.lang.smalltalk,comp.object,comp.lang.c++,comp.lang.java
- Subject: Re: The Good, the Bad, the Ugly, and the Wicked ...
- Date: 29 Mar 1996 05:56:25 GMT
- Organization: Bytesmiths, the Smalltalk start-up specialists
- Message-ID: <Jan-2803962353330001@206.116.214.1>
- References: <31570B8E.5A12@vmark.com> <4je5rq$7qg@mimas.brunel.ac.uk>
- Reply-To: Jan@Bytesmiths.com
- NNTP-Posting-Host: 206.116.214.1
- X-Newsreader: Yet Another NewsWatcher 2.1.7
-
- In article <4je5rq$7qg@mimas.brunel.ac.uk>, Francesco Fantauzzi
- <mapgfgf@brunel.ac.uk> wrote:
-
- > A language offering automatic garbage collection disqualifies itself for
- > at least two streams of applications:
- ...
- > 2) those requiring that you DON'T do any automatic garbage collection.
- >
- > I belive that, for instance, real-time applications fit the second
- > stream.
-
- Damn! I knew I was doing something wrong all along! All that real-time
- Smalltalk I've done will have to be re-written in C++! All those GUI ops
- that happened in under 200mS will have to be un-done! All those
- transactions I committed in under 50mS will have to be rolled back! :-)
-
- Will someone please call up Tektronix, Texas Instruments, DSC, and the
- Canadian Navy and tell them their delivered real-time Smalltalk
- applications don't work? :-)
-
- (Can Ralph, Craig, and David put something about this in their respective
- Smalltalk FAQs as one of the Great Myths Of Smalltalk?)
-
- As Francesco implies it, there is no computer that operates in "real
- time." Real time means "assured operation within specified time
- constraints," NOT "instantaneously, without miniscule pause for any
- reason." This means that a C++ (or assembler, for that matter) program
- running on a UNIX (or Windows, or MacOS, or...) system cannot possibly be
- "real time," because heavy loading and/or virtual memory can cause it to
- operate outside of response time specs.
-
- Carefully coded Smalltalk running under a real-time kernel in an embedded
- system can operate within real-time constraints just as well as (probably
- much better than :-) assembly code running on a time-sliced or
- virtual-memory system.
-
- > A language that is proposed as "general purpose" shouldn't offer
- > "compulsory" garbage collection (g.c.). A general purpose language should
- > give you a chance to implement the g.c. you like the most.
-
- (Warp back to 1976 for a moment, folks. Kernigan and Ritchie are facing an
- angry crowd. "Any general-purpose language shouldn't offer automatic
- variables!" someone from the crowd shouts, "Yea, we should be able to
- implement the storage layout we like the most!" shouts another, "I'll tell
- you where you can GOTO if you take away my JMPs!" shouts a third...)
-
- (Of course, twenty years ago you had people claiming you couldn't do
- real-time under UNIX, because it had non-deterministic memory allocators
- malloc() and free(), time-sharing, and virtual memory, but then pesky AT&T
- used it for all those "real-time" telephone switches... Times change, but
- religious arguments don't -- they just get new vocabulary every generation
- or so.)
-
- : Jan Steinman <mailto:Jan@Bytesmiths.com>
- : Bytesmiths, the Smalltalk specialists <http://www.bytesmiths.com>
- : "This is witty signature 1 of 47,288."
-